/*
 * @Author: 曹捷
 * @Date: 2021-07-29 15:25:56
 * @LastEditors: 曹捷
 * @LastEditTime: 2021-07-30 16:08:50
 * @Description: 获取配置文件 并且校验配置文件
 */
export default function (initInfo) {
  let notNull = ['title']
  // 参数校验  必传参数
  notNull.forEach(element => {
    let item
    if (element.indexOf('.') !== -1) {
      let arr = element.split('.')
      item = initInfo[arr[0]][arr[1]]
    } else {
      item = initInfo[element]
    }
    if (!item) {
      throw new Error(`参数${element} 不能为空`)
    }
  })
  let state = {
    TokenKey: 'WT-TOKEN',
    roleKey: 'WT-ROLE',
    title: '',
    navbarTitle: '',
    showLogin: true,
    fixedHeader: false,
    menu: {
      name: 'menuName',
      path: 'path',
      children: 'children',
      key: 'menuCode',
      parentId: 'parentId'
    },
    router: {
      // 路由切换是否有动画
      transition: true
    },
    permission: {
      check: false,
      /**
       * 默认为null  可以传入 Function  用作layout组件  初始化调用 ，进行权限菜单赋值等操作
       */
      checkEvent: null
    },
    /**
     * 面包屑是否是在顶部navbar里面还是在body里面
     */
    breadcrumbTop: true,
    /**
     * nabbar在body里面  是否固定
     */
    fixedNavbar: true,
    /**
     * table 是否有border
     */
    tableBorder: true,
    /**
     * 表格默认是否居中靠左  left  right  center
     */
    tableAlign: 'center',
    /**
     * theme-blue theme-black
     */
    theme: 'theme-blue',
    ajax: {
      response: null,
      request: null
    }
  }
  for (const key in initInfo) {
    if (initInfo[key] instanceof Object) {
      state[key] = Object.assign(state[key], initInfo[key])
    } else {
      state[key] = initInfo[key]
    }
  }
  console.log('init  config')
  return state
}